/**
 * API响应格式化工具
 * 替代Java项目中的Result类
 */
class ApiResponse {
  /**
   * 成功响应
   * @param {any} data - 响应数据
   * @param {string} message - 响应消息
   * @returns {Object} 格式化的响应对象
   */
  static success(data = null, message = '操作成功') {
    return {
      code: '200',
      msg: message,
      data: data
    };
  }

  /**
   * 错误响应
   * @param {string} code - 错误代码
   * @param {string} message - 错误消息
   * @returns {Object} 格式化的响应对象
   */
  static error(code = '500', message = '系统错误') {
    return {
      code: code,
      msg: message,
      data: null
    };
  }

  /**
   * 参数错误响应
   * @param {string} message - 错误消息
   * @returns {Object} 格式化的响应对象
   */
  static paramError(message = '参数错误') {
    return this.error('400', message);
  }

  /**
   * 未登录响应
   * @param {string} message - 错误消息
   * @returns {Object} 格式化的响应对象
   */
  static unauthorized(message = '用户未登录') {
    return this.error('401', message);
  }

  /**
   * 无权限响应
   * @param {string} message - 错误消息
   * @returns {Object} 格式化的响应对象
   */
  static forbidden(message = '无权限访问') {
    return this.error('403', message);
  }

  /**
   * 资源不存在响应
   * @param {string} message - 错误消息
   * @returns {Object} 格式化的响应对象
   */
  static notFound(message = '资源不存在') {
    return this.error('404', message);
  }
}

module.exports = ApiResponse;